package com.nineclock.attendance.service;


import com.nineclock.attendance.dto.AttendGroupDTO;
import com.nineclock.attendance.dto.MakeupRuleDTO;
import com.nineclock.attendance.dto.OverTimeRuleDTO;
import com.nineclock.attendance.pojo.AtCompanyCommonSetting;
import com.nineclock.common.entity.PageResult;

public interface AttendGroupService {

    /**
     * 考勤组: 分页查询
     * @param page
     * @param pageSize
     * @return
     */
    PageResult<AttendGroupDTO> queryAttendGroupPage(Integer page, Integer pageSize);

    /**
     * 考勤组: 添加
     * @param attendGroupDTO
     */
    void addAttendGroup(AttendGroupDTO attendGroupDTO);


    /**
     * 考勤组: 获取当前登录用户考勤组
     * @return
     */
    AttendGroupDTO getAttendGroupByUserId();


    /**考勤组：删除
     * /localhost:10010/atte/attendGroup/11*/
    void deleteById(Long id);

    /**
     * 分页查询加班规则
     * @param page
     * @param pageSize
     * @return
     */
    PageResult<OverTimeRuleDTO> overTime(Long page, Long pageSize);

    /**
     * 分页查询补卡规则
     * @param page
     * @param pageSize
     * @return
     */
    PageResult<MakeupRuleDTO> makeupRule(Long page, Long pageSize);

    /**
     * 删除加班规则
     * @param id
     */
    void deleteOvertimeRule(Long id);

    /**
     * 新增加班规则
     * @param overTimeRuleDTO
     */
    void addOvertimeRule(OverTimeRuleDTO overTimeRuleDTO);

    //编辑考勤组
    AttendGroupDTO getAttendGroupInfo(Integer id);

    /**
     * 编辑补卡规则
     * @param atCompanyCommonSetting
     */
    void updateAtCompanyCommonSettingById(AtCompanyCommonSetting atCompanyCommonSetting);
}
